package com.demo.util;

public class StringUtils {
    /**
     * 把字符串的首字母小写
     * @param str
     * @return
     */
    public static String initialLower(String str){
        return str.substring(0,1).toLowerCase()+str.substring(1);
    }

    /**
     * 把字符串首字母大写
     * @param str
     * @return
     */
    public static String initialUpper(String str){
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }

    /**
     * 根据属性 来得到set方法名
     * @param fieldName
     * @return
     */
    public static String getSetMethod(String fieldName){
        return "set"+initialUpper(fieldName);
    }

    public static String getGetMethod(String fieldName){
        return "get"+initialUpper(fieldName);
    }
    /**
     * 一个类全称 包.类。进行拆解，得到最后一个字符串，并首字母大写 得到类名，并转换成 ioc容器中的名字（类名首字母小写）
     * package.class.method
     * @param fullName
     * @return
     */
    public static String getClassNameByFullName(String fullName){
        String[] split = fullName.split("\\.");
        return initialLower(split[split.length-1]);
    }
    public static Integer pointCutLevel(String fullName){
        Integer level = 0;
        String regexLower = "[a-z]+"; //所有小写
        for (String s : fullName.split("\\.")) {
            if(s.matches(regexLower)){
                if(level==0){
                    level =1;
                }
                if(level==2){
                    level=3;
                }
            }else{
                level =2;
            }
        }
        return level;
    }
}
